package net.yla.smartbus.module.ba.employee.entity;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import net.yla.smartbus.core.validation.DtoName;
import net.yla.smartbus.core.validation.GetDtoName;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @description:
 * @author: Yee
 * @date: 2021/6/18 17:06
 */
@Data
@GetDtoName
public class EmployeeDO {

    //人员Id
    @DtoName(value = "empId", group = {"query", "view"})
    private Integer empId;

    //分组Id
    @DtoName(value = "groupId", group = {"query", "view"})
    private Integer groupId;

    //部门Id
    @DtoName(value = "deptId", group = {"query", "view"})
    private Integer deptId;

    //职务Id
    @DtoName(value = "dutieId", group = {"query", "view"})
    private Integer dutieId;

    //当前员工所在线路(引用BA_Routes表主键)
    @DtoName(value = "routeId", group = {"query", "view"})
    private Integer routeId;

    //当前员工所在支线
    @DtoName(value = "lineId", group = {"query", "view"})
    private Integer lineId;

    //当前员工所在线路(引用BA_Stations表主键)
    @DtoName(value = "stationId", group = {"query", "view"})
    private Integer stationId;

    //当前员工所在站台
    @DtoName(value = "standId", group = {"query", "view"})
    private Integer standId;

    //当前员工所在车辆
    @DtoName(value = "vehicleId", group = {"query", "view"})
    private Integer vehicleId;

    //雇员类型(0未设置；1常规人员；2驾驶员；3加盟人员)
    @DtoName(value = "emplyeeType", group = {"query", "view"})
    private Integer emplyeeType;

    //姓名
    @DtoName(value = "name", group = {"query", "view"})
    private String name;

    //姓名的拼音
    @DtoName(value = "pinyin", group = {"query", "view"})
    private String pinyin;

    //姓名的拼音首字母
    @DtoName(value = "abbr", group = {"query", "view"})
    private String abbr;

    //人员编码
    @DtoName(value = "code", group = {"query", "view"})
    private String code;

    //员工卡卡号
    @DtoName(value = "cardNo", group = {"query", "view"})
    private String cardNo;

    //性别
    @DtoName(value = "gender", group = {"query", "view"})
    private Integer gender;

    //出生日期
    @DtoName(value = "dateOfBirth", group = {"query", "view"})
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateOfBirth;

    //初次参加工作日期
    @DtoName(value = "dateOfWork", group = {"query", "view"})
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "")
    private Date dateOfWork;

    //驾照
    @DtoName(value = "driverLicense", group = {"query", "view"})
    private Integer driverLicense;

    //从业资格证
    @DtoName(value = "certificate", group = {"query", "view"})
    private Integer certificate;

    //驾驶证编号
    @DtoName(value = "licenseNo1", group = {"query", "view"})
    private String licenseNo1;

    //从业资格证编号
    @DtoName(value = "licenseNo2", group = {"query", "view"})
    private String licenseNo2;

    //未来使用
    private String licenseNo3;

    //未来使用
    private String licenseNo4;

    //未来使用
    private String licenseNo5;

    //初次领证日期(驾驶证专用)
    @DtoName(value = "registeredDate1", group = {"query", "view"})
    private Date registeredDate1;

    //初次领证日期(道路运输资格证专用)
    @DtoName(value = "registeredDate2", group = {"query", "view"})
    private Date registeredDate2;

    //初次领证日期(保留给未来使用)
    private Date registeredDate3;

    //初次领证日期(保留给未来使用)
    private Date registeredDate4;

    //初次领证日期(保留给未来使用)
    private Date registeredDate5;

    //证件有效期止(驾驶证专用)
    @DtoName(value = "expiryDate1", group = {"query", "view"})
    private Date expiryDate1;

    //证件有效期止(道路运输资格证专用)
    @DtoName(value = "expiryDate2", group = {"query", "view"})
    private Date expiryDate2;

    //证件有效期止(保留给未来使用)
    private Date expiryDate3;

    //证件有效期止(保留给未来使用)
    private Date expiryDate4;

    //证件有效期止(保留给未来使用)
    private Date expiryDate5;

    //员工头像照
    @DtoName(value = "image1", group = {"query", "view"})
    private String image1;

    //身份证正面
    @DtoName(value = "image2", group = {"query", "view"})
    private String image2;

    //身份证反面
    @DtoName(value = "image3", group = {"query", "view"})
    private String image3;

    //驾驶证正面
    @DtoName(value = "image4", group = {"query", "view"})
    private String image4;

    //驾驶证反面
    @DtoName(value = "image5", group = {"query", "view"})
    private String image5;

    //道路运输资格证正面
    @DtoName(value = "image6", group = {"query", "view"})
    private String image6;

    //道路运输资格证反面
    @DtoName(value = "image7", group = {"query", "view"})
    private String image7;

    //保留给未来使用
    private String image8;

    //保留给未来使用
    private String image9;

    //保留给未来使用
    private String image10;

    //身份证号码
    @DtoName(value = "idcard", group = {"query", "view"})
    private String idCard;

    //固话号码
    @DtoName(value = "tel", group = {"query", "view"})
    private String tel;

    //手机号码
    @DtoName(value = "phone", group = {"query", "view"})
    private String phone;

    //工作单位
    @DtoName(value = "WorkUnit", group = {"query", "view"})
    private String WorkUnit;

    //籍贯
    @DtoName(value = "native1", group = {"query", "view"})
    private Integer native1;

    //学历
    @DtoName(value = "education", group = {"query", "view"})
    private Integer education;

    //引用SYS_Areas表主键
    @DtoName(value = "location", group = {"query", "view"})
    private Integer location;

    //户籍所在地
    @DtoName(value = "domicile", group = {"query", "view"})
    private String domicile;

    //行政区划代码
    @DtoName(value = "regionalism", group = {"query", "view"})
    private String regionalism;

    //民族
    @DtoName(value = "nation", group = {"query", "view"})
    private Integer nation;

    //婚姻状况 0未设置；1未婚；2已婚；3离异；4丧偶
    @DtoName(value = "marriage", group = {"query", "view"})
    private Integer marriage;

    //英语能力
    @DtoName(value = "englishLevel", group = {"query", "view"})
    private String englishLevel;

    //邮政编码
    @DtoName(value = "postalcode", group = {"query", "view"})
    private String postalcode;

    //电子邮件地址
    @DtoName(value = "email", group = {"query", "view"})
    private String email;

    //通信地址
    @DtoName(value = "address", group = {"query", "view"})
    private String address;

    //备注信息
    @DtoName(value = "remarks", group = {"query", "view"})
    private String remarks;

    //记录所属平台
    private Integer platformId;

    //中心平台记录标识号
    private Long uniqueId;

    //记录的版本号(记录每次更新该值+1)
    private Integer version;

    //是否隐藏该记录(0正常，>0隐藏，-1逻辑删除)
    @DtoName(value = "hidden", group = {"count", "query"})
    private Integer hidden;

    //是否禁用 "启用状态"
    @DtoName(value = "disabled", group = {"query", "view"})
    private Integer disabled;

    //记录的排序号(数字越大排序越靠前)
    @DtoName(value = "sortOrder", group = {"count", "query"})
    private Integer sortOrder;

    //记录的创建时间
    @DtoName(value = "creationTime", group = {"count", "query"})
    private Date creationTime;

    //记录的最后修改时间
    @DtoName(value = "lastModifyTime", group = {"count", "query"})
    private Date lastModifyTime;

    //记录的标志位
    private Integer flags;

}
